package zemberek3.lexicon;

public class SuffixLexicalDefinitions {

    public final Suffix Noun_Root = new Suffix("Noun_Root");
    public final Suffix Verb_Root = new Suffix("Verb_Root");

    public final Suffix Dat = new Suffix("Dat");
    public final Suffix Loc = new Suffix("Loc");
    public final Suffix Nom = new Suffix("Nom");

    public final Suffix Pnon = new Suffix("Pnon");
    public final Suffix P1sg = new Suffix("P1sg");
    public final Suffix P3pl = new Suffix("P3pl");

    public final Suffix A1sg = new Suffix("A1sg");
    public final Suffix A2sg = new Suffix("A2sg");
    public final Suffix A3sg = new Suffix("A3sg");
    public final Suffix A1pl = new Suffix("A1pl");
    public final Suffix A2pl = new Suffix("A2pl");
    public final Suffix A3pl = new Suffix("A3pl");

    public final Suffix Pos = new Suffix("Pos");
    public final Suffix Neg = new Suffix("Neg");

    public final Suffix Caus = new Suffix("Caus");
    public final Suffix Pass = new Suffix("Pass");

    public final Suffix Imp = new Suffix("Imp");

    public final Suffix Fut = new Suffix("Fut");
    public final Suffix Narr = new Suffix("Narr");
    public final Suffix Aor = new Suffix("Aor");

    public final Suffix Abil = new Suffix("Abil");

    public final Suffix Verb2Verb = new Suffix("Verb2Verb");

    public final LexicalForm Dat_yA = new LexicalForm("Dat_yA", Dat, "+yA");
    public final LexicalForm Dat_nA = new LexicalForm("Dat_nA", Dat, "nA");
    public final LexicalForm Nom_Empty = new LexicalForm("Nom_Empty", Nom);

    public final LexicalForm P1sg_Im = new LexicalForm("P1sg_Im", P1sg, "Im");
    public final LexicalForm P1sg_yIm = new LexicalForm("P1sg_yIm", P1sg, "+yIm");
    public final LexicalForm Pnon_Empty = new LexicalForm("Pnon_Empty", Pnon);

    public final LexicalForm Noun2Verb = new LexicalForm("Noun2Verb", Verb_Root);

    public final LexicalForm Noun_Root_Empty = new LexicalForm("Noun_Root_Empty", Noun_Root);
    public final LexicalForm Verb_Root_Empty = new LexicalForm("Verb_Root_Empty", Verb_Root);

    public final LexicalForm Pos_Empty = new LexicalForm("Pos_Empty", Pos);

    public final LexicalForm Neg_mA = new LexicalForm("Neg_mA", Neg,"mA");
    public final LexicalForm Neg_m = new LexicalForm("Neg_m", Neg,"m");

    public final LexicalForm Verb2Verb_Empty = new LexicalForm("Caus_t", Verb2Verb);

    public final LexicalForm Caus_t = new LexicalForm("Caus_t", Caus, "t");        //ara-t, böğür-t, daral-t (Not in yorul-t if yorulmak is in Dictionary)
    public final LexicalForm Caus_tIr = new LexicalForm("Caus_tIr", Caus, ">dIr"); //yap-tır
    public final LexicalForm Caus_Ar = new LexicalForm("Caus_Ar", Caus, "Ar");     //kop-ar

    public final LexicalForm Pass_In = new LexicalForm("Pass_In", Pass, "+In");
    public final LexicalForm Pass_InIl = new LexicalForm("Pass_nIl", Pass, "+InIl");
    public final LexicalForm Pass_nIl = new LexicalForm("Pass_nIl", Pass, "+nIl");

    public final LexicalForm Imp_Empty = new LexicalForm("Imp_Empty", Imp);

    public final LexicalForm Fut_yAcAk = new LexicalForm("Fut_yAcAk", Fut, "+yAcAk");

    public final LexicalForm Aor_Ir =  new LexicalForm("Aor_Ir" ,Aor, "+Ir"); //gel-ir
    public final LexicalForm Aor_Ar =  new LexicalForm("Aor_Ar", Aor, "+Ar"); //ser-er
    public final LexicalForm Aor_z =  new LexicalForm("Aor_z",Aor, "z");      // gel-me-z
    public final LexicalForm Aor_Empty =  new LexicalForm("Aor_Empty",Aor);   // gel-me--yiz

    public LexicalForm A1sg_yIm = new LexicalForm("A1sg_yIm", A1sg, "+yIm"); // gel-e-yim
    public LexicalForm A1sg_m = new LexicalForm("A1sg_m",A1sg, "m"); // gel-se-m
    public LexicalForm A1sg_Empty = new LexicalForm("A1sg_Empty", A1sg); // ben

    public LexicalForm A2sg_sIn = new LexicalForm("A2sg_sIn",A2sg, "sIn"); // gel-ecek-sin
    public LexicalForm A2sg_n = new LexicalForm("A2sg_sIn",A2sg, "n"); // gel-di-n
    public LexicalForm A2sg_Empty = new LexicalForm("A2sg_Empty", A2sg); // gel, sen,..
    public LexicalForm A2sg2_sAnA = new LexicalForm("A2sg2_sAnA",A2sg, "sAnA"); //gel-sene
    public LexicalForm A2sg3_yInIz = new LexicalForm("A2sg3_yInIz",A2sg, "+yInIz"); //gel-iniz

    public LexicalForm A3sg_Empty = new LexicalForm("A3sg_Empty", A3sg); // gel-di-, o-
    public LexicalForm A3sg_Verb_Empty = new LexicalForm("A3sg_Verb_Empty", A3sg); // gel-di-
    public LexicalForm A3sg_sIn = new LexicalForm("A3sg_sIn", A3sg, "sIn"); // gel-sin

    public LexicalForm A1pl_yIz = new LexicalForm("A1pl_yIz",A1pl, "+yIz"); // geliyor-uz
    public LexicalForm A1pl_k = new LexicalForm("A1pl_k",A1pl, "k");        // gel-di-k
    public LexicalForm A1pl_lIm = new LexicalForm("A1pl_lIm", A1pl, "lIm"); // gel-e-lim
    public LexicalForm A1pl_ler = new LexicalForm("A1pl_ler", A1pl, "ler"); // biz-ler
    public LexicalForm A1pl_Empty = new LexicalForm("A1pl_Empty", A1pl);    // biz

    public LexicalForm A2pl_sInIz = new LexicalForm("A2pl_sInIz", A2pl, "sInIz");    // gel-ecek-siniz
    public LexicalForm A2pl_nIz = new LexicalForm("A2pl_nIz",A2pl, "nIz");           // gel-di-niz
    public LexicalForm A2pl_yIn = new LexicalForm("A2pl_yIn", A2pl, "+yIn");         // gel-me-yin
    public LexicalForm A2pl_ler = new LexicalForm("A2pl_ler", A2pl, "ler");          // siz-ler
    public LexicalForm A2pl_Empty = new LexicalForm("A2pl_Empty", A2pl);             // gel-e-lim
    public LexicalForm A2pl_sAnIzA = new LexicalForm("A2pl_sAnIzA", A2pl, "sAnIzA"); // gel-senize

    public LexicalForm A3pl_lAr = new LexicalForm("A3pl_lAr",A3pl, "lAr"); // ev-ler
    public LexicalForm A3pl_Verb_lAr_After_Tense = new LexicalForm("A3pl_Verb_lAr_After_Tense", A3pl, "lAr"); // gel-ecek-ler
    public LexicalForm A3pl_Verb_lAr = new LexicalForm("A3pl_Verb_lAr", A3pl, "lAr"); // gel-ecek-ler
    public LexicalForm A3pl_Comp_lAr = new LexicalForm("A3pl_Comp_lAr", A3pl, "lAr"); //zeytinyağlarımız
    public LexicalForm A3pl_sInlAr = new LexicalForm("A3pl_sInlAr",A3pl, "sInlAr"); // gel-sinler
    public LexicalForm A3pl_nlAr = new LexicalForm("A3pl_nlAr",A3pl, "nlAr"); // bu-nlar

    public LexicalForm Abil_yAbil = new LexicalForm("Abil_yAbil", Abil, "+yAbil");
    public LexicalForm Abil_yA = new LexicalForm("Abil_yA", Abil, "+yA");

    public void initialize(SuffixRegistry registry) {


    }

}
